package com.boarsoft.config.util;

import org.apache.commons.beanutils.ConvertUtils;
import java.lang.reflect.Field;
import java.util.Map;

/**
 *
 * ConfigUtils配置工具类，使用反射为配置类装配属性值 可适配不同配置中心
 *
 */
public class ConfigUtils {

	/**
	 * 遍历bean的所有属性，从map取值，转成对应类型后，设置进去
	 *
	 * @param bean
	 * @param map
	 */
	public static void setProperties(Object bean, Map<String, Object> map) {
		for (Field f : bean.getClass().getDeclaredFields()) {
			f.setAccessible(true);
			try {
				f.set(bean, ConvertUtils.convert(map.get(f.getName()), f.getType()));
			} catch (Exception e) {
				throw new RuntimeException(e);
			}
		}
	}
}
